package drivers

import (
	"fmt"
	`gorm.io/gorm`

	// 添加GaussDB专用驱动
	"gorm.io/driver/gaussdb"
	// 添加OpenGauss连接器
	_ "gitee.com/opengauss/openGauss-connector-go-pq"
)

// NewGaussDBDialector 华为高斯GaussDB数据库--企业商用版本驱动
func NewGaussDBDialector(host, userName, password, database string, port int) gorm.Dialector {
	dsn := BuildGaussDBDsn(host, userName, password, database, port)
	fmt.Println("华为高斯GaussDB数据库--企业商用版本连接信息dsn：", dsn)
	//MeetGo.Log.Info("db-gorm-database-postgres数据库连接信息dsn:%s", dsn)
	return gaussdb.Open(dsn)
}

// BuildGaussDBDsn 构建华为高斯GaussDB数据库--企业商用版本连接信息dsn
func BuildGaussDBDsn(host, userName, password, database string, port int) string {
	// 华为高斯GaussDB数据库--企业商用版本连接信息dsn：host=10.10.10.10 port=5432 user=gauss password=123456 dbname=gauss sslmode=disable  TimeZone=Asia/Shanghai
	return fmt.Sprintf("host=%s port=%d user=%s password=%s dbname=%s sslmode=disable TimeZone=Asia/Shanghai", host, port, userName, password, database)
}
